import 'babel-polyfill';
// import 'es6-promise/auto';
import Vue from 'vue';
import VueI18n from 'vue-i18n';
import App from './App.vue';
import router from './router';
import store from './store';
import apiConstants from "./api/constants";
import { messages } from '@common/components/common/i18n';
import utils from '@common/utils/utils';
import '@common/plugins';
import CommonDialog from '@common/components/dialog';

Vue.prototype.$api = apiConstants;
Vue.use(CommonDialog, store, router);

const i18n = new VueI18n({
    locale: 'zh-CN',
    messages
});

//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
    if (to.path === '/redirect' || to.path === '/reg' || to.path.indexOf('/app') === 0) {
        next();
    } else {
        let sid = store.getters.getSidByPath(to.path);
        if (utils.isNotEmpty(sid)) {
            to.meta.permission = store.state.permission[sid];
        }
        let title = utils.replaceTag(to);
        document.title = `${title}` || window.configs.projectTitle;
        const token = utils.getSessionStorage(store.state.storageName, 'accessToken');
        if (!token && to.path !== '/login') {
            next('/login');
        } else {
            // 简单的判断IE10及以下不进入富文本编辑器，该组件不兼容
            if (navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor') {
                Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器，请使用更高版本的浏览器查看', '浏览器不兼容通知', {
                    confirmButtonText: '确定'
                });
            } else {
                next();
            }
        }
    }
});
new Vue({
    store,
    router,
    i18n,
    render: h => h(App)
}).$mount('#app');
